package Control;

import Model.Compra;
import Model.Produto;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;

public class CompraControl {
 
    private ArrayList<Compra> compra = null;
    
    public CompraControl(){
        compra = new ArrayList<>();
        carregaCompras();
    }
    
    private void carregaCompras(){
        BufferedReader br = null;
        String conteudo = null;
        try {
            br = new BufferedReader(new FileReader("./dados/compra.txt"));
            while((conteudo = br.readLine()) != null){
                String[] partes = conteudo.split("#");
                String[] partes3 = partes[0].split(",");
                String[] partes2 = partes[1].split("-");
                Compra cp = new Compra(new Produto(partes2[0], Double.parseDouble(partes2[1]), Integer.parseInt(partes2[2])),
                        Integer.parseInt(partes3[0]), Double.parseDouble(partes3[1])); //CRIA OBJETO COMPRA COM UM OBJETO PRODUTO, QUANTIDADE E PRECO TOTAL DA COMPRA
                compra.add(cp);
            }
            br.close();
        } catch(Exception e) {
            //System.out.println(e.getMessage());
        }
    }
    
    public void gravaDados(){
        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new FileWriter("./dados/compra.txt"));            
            for(Compra cp : compra){
                bw.write(cp.dadosObjeto());
                bw.newLine();
            }
            bw.close();
        } catch(Exception e) {
        }
    }
    
    public ArrayList<Produto> produtosCadastrados(){
        ProdutoControl pCtrl = new ProdutoControl();
        return pCtrl.getProduto();
    }
    
    public Produto elementoProduto(int index){
        ProdutoControl pCtrl = new ProdutoControl();
        return pCtrl.getProduto().get(index);
    }
    
    public void cadastraCompra(Produto pdt, int qtd){
        ProdutoControl pCtrl = new ProdutoControl();                                                                
        Compra cpr = new Compra(pdt, qtd, qtd*pdt.getValor());
        pdt.setQtd(qtd);
        pCtrl.atualizaQtd(pdt);
        compra.add(cpr);            
        gravaDados();
    }
    
    
}
